import Vue from 'vue'
// import routerIndex from '../router/index'

let vm = new Vue();
console.log(vm.$axios);

const request = (url, params, suc, fail) => {
    let method = params.method || 'GET';
    // let baseURL = params.baseURL || 'api/';
    let baseURL = params.baseURL || 'http://123.56.129.64:8080/';
    let headers = params.headers ? {'Content-Type':'application/x-www-form-urlencoded',...params.headers} : {'Content-Type':'application/x-www-form-urlencoded'};
    let load = params.loading;
    let key = !params.method || params.method === 'GET' ? 'params' : 'data';

    let loading;
    load && (loading = vm.$loading());
    key === 'data' && !params.headers && (params.data = vm.$qs.stringify(params.data));
    
    vm.$axios.request(url,{
        method,
        baseURL,
        headers,
        [key]:params.data,
    }).then(res=>{
        load && loading.close();
        if (res.data.code == '1') {
            return suc ? suc(res.data) : '';
        }
        else{
            vm.$notify.error({
                title: '错误',
                message: res.data.message
            });
            fail && fail(res.data);
        }
    }).catch(err=>{
        load && loading.close();
        vm.$notify.error({
            title: '错误',
            message: err
        });
        fail && fail();
    })
};

const url = {
    login:`users/login`,
    dataSources_list:`datasources/list`,//数据源列表
    dataSources_test:`datasources/test`,//测试数据源
    datasources:`datasources`,//添加，编辑数据源
    datasourcesCheck:`datasources/check`,//检查能否删除数据源
    solutionsSelect: 'solutions/select',   //  解决方案 Select
    solutionsList: 'solutions/list', //  项目list 
    datasourcesSelect: '/datasources/select',   //  数据源 select
    solutions: 'solutions', //  项目接口
    solutionsCheck: 'solutions/check', //  项目删除check
    modulesList: 'modules/list',   //  模块list
    modulesDefault: 'modules/default', //  模块默认
    modules: 'modules', //  模块接口
    modulesDeleteCheck: 'modules/delete/check',   //  模块删除check
    componentsList: '/components/list',   //  组件list
    navigationtree: 'navigationtree', //  组件数
    getFormList: 'forms/list', //获取form列表
    getSelectModelsList: 'forms/select/models', //获取form关联模型列表
    getFormDefault: 'forms/default', //获取form关联模型列表
    addForms: 'forms', //获取form关联模型列表
    formsDeleteCheck: 'forms/delete/check', //检查删除表单
    partList: 'formparts/list', //获取部件列表
    savePart: 'formparts', //保存part
    getSelectPartList: 'formparts/select/models', //获取关联模型
    getPartDefault: 'formparts/default', //获取部件关联模型
    getPartFieldList: 'formpartfields/list', //获取部件项列表
    formpartsDeleteCheck: 'formparts/delete/check', //检查部件删除
    getPartFieldModelList: 'formpartfields/select/models', //获取部件项关联模型
    getPartFieldDefault: 'formpartfields/default', //获取部件项所属部件信息
    savePartField: 'formpartfields', //保存部件项
    getPartBtnList: 'formpartbuttons/list', //获取部件按钮列表
    getPartBtnDefault: 'formpartbuttons/default', //获取部件按钮所属部件信息
    savePartBtn: 'formpartbuttons', //保存部件按钮
    checkParBtnCanEdit: 'formpartbuttons/check', //检查是否可编辑部件按钮
    getEnumsList: 'enums/list', //获取枚举列表
    getEnumsDefault: 'enums/default', //获取枚举所属信息
    saveEnums: 'enums', //获取枚举所属信息
    getEnumItems: 'enumitems/list', //获取枚举项列表
    getEnumItemsDefault: 'enumitems/default', //获取枚举项所属信息
    saveEnumItems: 'enumitems', //新增枚举项
    batchAddEnumItems: 'enumitems/batchadd', //批量添加枚举项
    formsChoice: 'forms/choose', //表单选择器
    modulesSelect: 'modules/select', //表单所属模块下拉
    componentsSelect: 'components/select', //表单所属组件下拉



    components: '/components',  //  组件接口
    componentsDefault: '/components/default',   //  选择模块后自动调接口刷新区域1列表
    componentsDeleteCheck: '/components/delete/check',   //  组件删除check
    modelsList: '/models/list',  //  模型list
    models: '/models',  //  模型接口
    modelsDefault: '/models/default',   //  模型默认
    modelsDeleteCheck: '/models/delete/check',  //  检测模型
    modelsCreateattibute: '/models/createattibute',  //  生成属性
    modelattributesList: '/modelattributes/list/',  //  模块属性列表
    modelattributesDefault: '/modelattributes/default', //  默认模块属性
    modelattributes: '/modelattributes',    //  模型属性接口
    modelattributesDeleteCheck: '/modelattributes/check',   //  模型属性删除check


    typedefine: 'typedefine',   //  类型选择
    menusList: 'menus/list', //  菜单接口
    formsChoose: 'forms/choose',    //  表单选择器
    menus: 'menus', //  新增菜单菜单

    solutionsUpdate: 'solutions/update',    //  更新实体库
    solutionsPublish: '/solutions/publish',    //  发布服务
    solutionsSyncdata: '/solutions/syncdata',    //  同步数据
    
    
   

};

export {
    request,
    url,
}